Many businesses manufacture, assemble and provide final products that are themselves made up of sub-assemblies and/or individual basic parts. In addition, in many instances, multiple final products provided by a business include common basic parts and/or sub-assemblies. Currently, the primary mechanism for organizing and tracking basic parts and sub-assemblies of a finished product is a bill of materials, or bill of material, (BOM).
A bill of materials is an essential part of the design, manufacture, inventory, and sale of any final product or high level product assembly that consists of more than one basic part. A bill of materials is used to describe a product in terms of its assemblies, sub-assemblies, and basic parts. At its most fundamental, and simplistic, level a bill of materials consists of a list of all the basic parts required to create or provide a given final product and/or high level product assembly. However, bills of materials are most useful for identifying sub-assemblies, and providing hierarchical sub-assembly listings in the form of multiple hierarchical bills of materials, with the master, or highest level, bill of materials describing a list of the largest, or most complicated components, and sub-assemblies and then the various sub-assemblies and/or basic parts of these highest order components and sub-assemblies being described as a further list of components and sub-assemblies in lower level bills of materials, and so on, all the way down to single individual basic parts being listed in a lowest level of bill of materials. Using a bill of materials, multi-part sub-assemblies can be identified at a desired hierarchical level without the need to necessarily list, or enter, all the constituent sub-assemblies and/or basic parts making up the multi-part sub-assembly, thereby saving time and energy, increasing overall efficiency, and minimizing the opportunities to introduce error.
In addition, using a bill of materials, the actual need for a larger number of particular sub-assemblies, for multiple finished products, is identified than might be identified without the bill of materials. As a result, based on the information gained by using the bill of materials, larger batches of manufacturing sub-assemblies are produced and starting and stopping of the manufacturing processes occurs less frequently. Less frequent starting and stopping of the manufacturing processes typically means more efficiency and less overhead cost. Therefore, using a bill of materials, manufacturing costs can often be reduced and profits increased and/or sale prices of the finished product reduced. In addition, the true need for sub-assemblies identified using a bill of materials can also be out-sourced to lower cost manufacturers.
In addition, using a bill of materials, shared sub-assemblies are identified and this can reduce the amount of inventory needed and/or the amount of warehouse space needed to carry sufficient inventory to meet demand fluctuations. As a result, inventory can be run more efficiently and inventory costs can be reduced using a bill of materials.
In addition, using a bill of materials, the time to manufacture a finished product, from order to delivery, can be reduced by having the correct sub-assemblies and the correct number of sub-assemblies, as identified using a bill of materials, on hand and assembled to reduce final finished goods assembly time.
In addition, once a well defined and complete bill of materials is created for one level of sub-assemblies, creating higher level, or new, bills of materials, such as a master bill of materials, is greatly simplified.
As an example, for a computing system, such as a desktop PC, the highest level bill of materials might list the shipping box, manual, packaging, packaging labels and the actual PC. Then the PC itself referenced in this highest level bill of materials might contain its own list of sub-assemblies like power supply, motherboard, hard drive, case, etc. This increasing level of detail then continues for all sub-assemblies until it reaches its constituent parts, such as resistors or processors, or modules that are out of the scope of the bill of materials, such as parts making up a fan that is bought as a module from another manufacturer.
As discussed above, bills of materials are extremely important, since without a working knowledge of how many basic parts a product needs, there is no way of knowing how many units of that part a business needs to buy and keep in inventory and/or warehouse. As also discussed above, a bill of materials is most useful when sub-assemblies are recognized and the bill of materials is efficiently organized or “refactored” using the recognized sub-assemblies. However, as many of the products sold and used in the world today have become larger and larger collections of basic parts and sub-assemblies, and as many individual businesses continue to produce and offer a greater selection of products, it has become harder and harder for businesses to recognize common sub-assemblies and to refactor the bills of materials to include these sub-assemblies.
For instance, continuing with the PC example from above, a desktop system, a notebook system, and a server system assembled and/or manufactured by the computing system manufacturer business can easily share several common sub-assemblies such as memory sub-assemblies, hard drive sub-assemblies, power supply sub-assemblies, motherboard sub-assemblies, graphics board sub-assemblies, software packages/sub-assemblies, etc. In addition, each of these sub-assemblies can, and often does, include further basic parts and/or sub-assemblies such as memory chips/chip modules, microprocessors/modules, discrete components such as capacitors, resistors, inductors, etc.
As a further specific example, assume the desktop system, the notebook system and the server system all use the same motherboard, and that the common motherboard includes a given microprocessor, a power supply module, and various discrete components. It is quite possible that a bill of materials clerk might enter each the basic parts into a computing system implemented inventory and sales tracking system as part of a rather inefficient bill of materials listing:
Desktop PC:                Microprocessor (1);        Power Supply Module (1);        Capacitors, 10 microfarad (5);        Capacitors, 5 microfarad (6);        Resistors 10 ohm (6);        Resistors 3 ohm (20); etc.        
Then the same bill of materials clerk might enter a similar list for a notebook system as follows:
Notebook System:                Microprocessor (1);        Power Supply Module (1);        Capacitors, 10 microfarad (5);        Capacitors, 5 microfarad (6);        Resistors 10 ohm (6);        Resistors 3 ohm (20); etc.        
Then the same bill of materials clerk might enter a similar list for a server system as follows:
Server System:                Microprocessor (1);        Power Supply Module (1);        Capacitors, 10 microfarad (5);        Capacitors, 5 microfarad (6);        Resistors 10 ohm (6);        Resistors 3 ohm (20); etc.        
This type of redundant entry often occurs day in and day out without anyone ever recognizing that the basic parts: Microprocessor (1); Power Supply Module (1); Capacitors, 10 microfarad (5); Capacitors, 5 microfarad (6); Resistors, 10 ohm (6); and Resistors, 3 ohm (20), could all be refactored and entered under the single sub-assembly “motherboard”.
Of course, the example above is a highly simplified illustrative example. Many products and/or sub-assemblies, including real motherboards and computing systems, are far more complicated and therefore recognizing a given sub-assembly and refactoring an actual bill of materials is far more difficult. Consequently, considerable time and energy is currently often expended repeatedly entering basic parts or sub-assemblies that could be refactored into larger groupings, and numerous opportunities for errors are introduced.